1. Field of the Invention
The present invention generally relates to electronic circuits and, more specifically, to circuits containing a digital data processing unit capable of processing data contained in one or several memories internal or external to the circuit.
The present invention more specifically applies to the checking of the integrity (the absence of modification) of data transferred between a memory and a processing unit.
2. Discussion of the Related Art
In many applications, it is desirable to ensure that data transferred between a memory and a processing unit are not modified either on transfer thereof over communication buses, or on buffering thereof between their source memory and the processing unit. Such modifications may be incidental or voluntary. A voluntary modification results, for example, from a so-called fault-injection attack which comprises introducing a disturbance in the electronic circuit operation (for example, by intervening on its power supply) to modify the data states on the transfer buses or in the memories. Such fault injections may, for example, modify the running of a program, modify data accessed by this program, etc. and may result, for example, in accepting an erroneous authentication, introducing a parasitic program (virus), hacking a key or a cryptography algorithm, etc.
To block such attacks, hardware solutions include physically detecting the original disturbance (light, heat, supply current, etc.) or performing redundant calculations. Such hardware solutions are costly in terms of integrated circuit surface area.
Software solutions which comprise, for example, checking that the program has effectively gone through certain steps, reading data several times in a row and comparing them with one another. All these solutions have a cost in terms of performance and especially in terms of program execution speed.
An incidental modification of the progress of a program may originate from a noisy environment (for example, a microcontroller in an industrial environment or in a vehicle) and translate as unwanted malfunctions.